package com.chenglu.android.common.net;


import com.chenglu.android.bean.LoginBean;
import com.chenglu.android.bean.SmsCodeBean;
import com.chenglu.android.cart.bean.CartBean;
import com.chenglu.android.cart.bean.CartUpdateBean;
import com.chenglu.android.classify.bean.CategoryBannerBean;
import com.chenglu.android.classify.bean.ClassisyTreeBean;
import com.chenglu.android.goodsinfo.bean.GoodsCommentBean;
import com.chenglu.android.goodsinfo.bean.GoodsInfoBean;
import com.chenglu.android.goodsinfo.bean.ShopCouponPage;
import com.chenglu.android.goodsinfo.bean.ShopsinfoBean;
import com.chenglu.android.index.bean.BannerBeanList;
import com.chenglu.android.index.bean.IndexRecomBean;
import com.chenglu.android.index.bean.NearbyShopBean;
import com.chenglu.android.index.bean.PageListBean;
import com.chenglu.android.index.bean.TabTitleBean;
import com.chenglu.android.logistics.bean.LogisticsBean;
import com.chenglu.android.mine.bean.AddressListBean;
import com.chenglu.android.mine.bean.AddressSubmitBean;
import com.chenglu.android.mine.bean.AddressTreeBean;
import com.chenglu.android.mine.bean.AmountTypeBean;
import com.chenglu.android.mine.bean.BeansDetailBean;
import com.chenglu.android.mine.bean.CollectBean;
import com.chenglu.android.mine.bean.CommonDataBean;
import com.chenglu.android.mine.bean.CouponBean;
import com.chenglu.android.mine.bean.FansListBean;
import com.chenglu.android.mine.bean.MemberCenterBean;
import com.chenglu.android.mine.bean.MoneyBean;
import com.chenglu.android.mine.bean.PosterBean;
import com.chenglu.android.mine.bean.PutFileBean;
import com.chenglu.android.mine.bean.ReturnStringBean;
import com.chenglu.android.mine.bean.UserInfoBean;
import com.chenglu.android.mine.bean.UserBalanceBean;
import com.chenglu.android.order.bean.OrderInfoBean;
import com.chenglu.android.orderinfo.bean.OrderDetailBean;
import com.chenglu.android.orderinfo.bean.QrcodeBean;
import com.chenglu.android.payment.bean.ComfirmOrderBean;
import com.chenglu.android.payment.bean.CouponListBean;
import com.chenglu.android.payment.bean.PayOrderBean;
import com.chenglu.android.payment.bean.PayTypeConfig;
import com.chenglu.android.payment.bean.PostDayBean;
import com.chenglu.android.payment.bean.PostTimeListBean;
import com.chenglu.android.payment.bean.TenantIdPayMethod;
import com.chenglu.android.redpacket.bean.OpenPacketBean;
import com.chenglu.android.redpacket.bean.PacketBean;
import com.chenglu.android.restaurant.bean.CurrentShopsInfoBean;
import com.chenglu.android.restaurant.bean.GoodscategorylisBean;
import com.chenglu.android.restaurant.bean.RestaurantSearchBean;
import com.chenglu.android.restaurant.bean.ReviewTypeCountBean;
import com.chenglu.android.restaurant.bean.ShopReviewPageBean;
import com.chenglu.android.store.bean.ChartBangBean;


import java.util.Map;

import io.reactivex.rxjava3.core.Observable;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;


/**
 * @author: lyj
 * @Created: by Copyright 2023/3/6 Guangzhou Hongma Technology Co., Ltd. All rights reserved.
 * description：接口
 */
public interface APIService {

//    http://47.115.160.226:18038/app/recordList

    /**
     * 登陆授权
     */

    @POST("/server-system/auth/oauth/token")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<LoginBean> getLogin(@Query("username") String username, @Query("smsCode") String smsCode, @Query("grant_type") String grantType);


    @POST("/server-system/auth/oauth/token")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<LoginBean> getOneLogin(@Query("accessToken") String accessToken, @Query("grant_type") String grantType);

    /**
     * @description 退出登录
     */

    @GET("/server-system/auth/oauth/logout")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<SmsCodeBean> getExitLogin(@Header("token") String token);


    /**
     * 获取注册短信验证码
     */

//    @Headers("User-Type:wap,Authorization:d2FwOlZPclVUOVVB")
    @GET("/server-system/auth/oauth/sms/code")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<SmsCodeBean> getSmsCode(@Query("mobile") String mobile);

    /**
     * @description 用户的所有信息
     */

    @GET("/server-system/wap/user/info")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<UserInfoBean> getUserInfo(@Header("token") String token);


    @GET("/server-shop/api/userBalance/getUserBalance")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<UserBalanceBean> getUserBalance(@Header("token") String token);


    /**
     * @description 更新用户信息和图片
     */

    @POST("/server-system/wap/user/update/base")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<SmsCodeBean> getUserUpdate(@Header("token") String token, @Body RequestBody requestBody);


    /**
     * z
     *
     * @description 上传文件
     */
    @Multipart
    @POST("/server-resource/wap/oss/put/file")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<PutFileBean> getPutFile(@Header("token") String token, @Part MultipartBody.Part file);


    /**
     * @description 上传多张图片
     */

    @Multipart
    @POST("/server-resource/wap/oss/put/file")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Call<PutFileBean> uploadImg(@Header("token") String token, @Part MultipartBody.Part file);


    /**
     * @description 激活红豆
     */
    @GET("/server-shop/api/userBalance/activeBeans")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<SmsCodeBean> getActiveBeans(@Header("token") String token);

    /**
     * @description 红豆余额
     */
    @GET("/server-shop/api/userBalance/getBeansDetails")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<BeansDetailBean> getBeansDetails(@Header("token") String token);


    /**
     * @description 1余额 2积分 3红豆 5商家红包余额 6平台红包余额记录
     */
    @GET("/server-shop/api/userBalance/walletPage")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<AmountTypeBean> getAmountTypeList(@Header("token") String token, @QueryMap Map<String, String> map);

    /**
     * @description 余额
     */
    @GET("/server-shop/api/userBalance/getMoneyDetails")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<MoneyBean> getMoneyDetails(@Header("token") String token);


    /**
     * @description 收藏列表
     */
    @GET("/server-shop/api/goodscollect/page")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CollectBean> getGoodsCollect(@Header("token") String token, @QueryMap Map<String, String> map);


    /**
     * @description 删除收藏商品id
     */
    @POST("/server-shop/api/goodscollect/remove")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<SmsCodeBean> getGoodsCollectRemove(@Header("token") String token, @Query("goodsId") String goodsId);


    /**
     * @description 新增收藏商品id
     */
    @POST("/server-shop/api/goodscollect/save")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<SmsCodeBean> getGoodsCollectSave(@Header("token") String token, @Body RequestBody requestBody);


    /**
     * @description 删除店铺id
     */
    @POST("/server-shop/api/goodscollect/removeShopsCollect")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<SmsCodeBean> getShopsCollectRemove(@Header("token") String token, @Query("tenantId") String tenantId);


    /**
     * @description 收藏列表
     */
    @GET("/server-shop/api/goods/page")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<IndexRecomBean> getShopsRecommendList(@Query("tenantId") String tenantId);


    /**
     * @description 店铺的推荐列表
     */
    @GET("server-shop/api/goods/shopsRecommendList")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ChartBangBean> getShopsTypes(@Header("token") String token, @Query("type") int type, @Query("tenantId") String tenantId);

    /**
     * @description 等级查询
     */
    @GET("/server-system/wap/user/getLevelDescriptions")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ReturnStringBean> getLevelDescriptions(@Header("token") String token);


    /**
     * @description 会员中心详情
     */
    @GET("/server-system/wap/user/memberCenterInfo")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<MemberCenterBean> getMemberCenterInfo(@Header("token") String token);


    /**
     * @description 粉丝列表
     */
    @GET("/server-system/wap/user/fansPage")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<FansListBean> getFansPage(@Header("token") String token, @Query("current") int current, @Query("size") int size);


    /**
     * @description 消费列表
     */
    @GET("/server-system/wap/user/consumerPage")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<FansListBean> getConsumerPage(@Header("token") String token, @Query("current") int current, @Query("size") int size);


    /**
     * @description 宣传海报
     */
    @GET("/server-system/wap/user/indexPromotionPoster")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<PosterBean> getPromotionPoster(@Header("token") String token);


    /**
     * @description 平台资质
     */
    @GET("/server-shop/api/shopsinfo/getPlatformQualificationPics")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ReturnStringBean> getPlatformPics();


    /**
     * @description 分类
     */
    @GET("/server-shop/wap/goods/category/tree")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ClassisyTreeBean> getClassisyTree();


    /**
     * @description banner列表获取
     */
    @GET("server-base/wap/banner/list")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CategoryBannerBean> getBanner();

    /**
     * @description 橙鹿优选首页banner
     */
    @GET("/server-system/wap/banner/list")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<BannerBeanList> getBannerList(@Query("shopsTypeId") String shopsTypeId, @Query("showType") String showType);

    /**
     * @description 橙鹿优选首页图片分类
     */
    @GET("/server-shop/api/goodsCategory/pageList")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<PageListBean> getPageList(@Query("level") String level, @Query("isIdxShow") String isIdxShow);


    /**
     * @description 橙鹿优选商城 药店板块的接口图片分类
     */
    @GET("/server-shop/api/goodsCategory/pageList")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<PageListBean> getPageList(@QueryMap Map<String, String> map);


    /**
     * @description 橙鹿优选首页附近好店
     */
    @GET("/server-shop/api/shopsinfo/nearbyShop")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<NearbyShopBean> getNearbyShop(@Query("lng") String lng, @Query("lat") String lat);

    /**
     * @description 橙鹿优选首热销和推荐 精选商品的接口
     */
    @GET("/server-shop/api/goods/indexPage")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<IndexRecomBean> getIndexPage(@QueryMap Map<String, String> map);


    /**
     * @description 橙鹿优选搜索商品的接口
     */
    @GET("/server-shop/api/goods/page")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<IndexRecomBean> getSearchPage(@QueryMap Map<String, String> map);


    /**
     * @description 店铺的榜单的接口
     */
    @GET("/server-shop/api/goods/shopsRecommendPage")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<IndexRecomBean> getShopsRecommendPage(@Header("tenantId") String tenantId, @QueryMap Map<String, String> map);

    /**
     * @description 橙鹿优选商品详情
     */
    @GET("/server-shop/api/goods/info")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<GoodsInfoBean> getGoodsInfo(@QueryMap Map<String, String> map);

    /**
     * @description 橙鹿优选商品评论
     */
    @GET("/server-shop/api/review/page")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<GoodsCommentBean> getGoodsComment(@QueryMap Map<String, String> map);

    /**
     * @description 橙鹿优选店铺信息
     */
    @GET("/server-shop/api/shopsinfo/info")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ShopsinfoBean> getShopinfo(@Query("tenantId") String tenantId);


    @GET("/server-shop/api/market/findAll")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<TabTitleBean> getTabTitle();


    /**
     * @description 购物车商品列表
     */

    @GET("/server-shop/api/shoppingtrolley/list")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CartBean> getCart(@Header("token") String token);


    /**
     * @description 购物车商品列表
     */

    @GET("/server-shop/api/shoppingtrolley/list")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CartBean> getShopsCart(@Header("token") String token,@Query("shopsTypeId")String shopsTypeId);

    /**
     * @description 修改购物车商品
     */

    @POST("/server-shop/api/shoppingtrolley/update")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CartUpdateBean> getCartUpdate(@Header("token") String token, @Body RequestBody requestBody);


    /**
     * @description 删除购物车商品
     */

    @POST("/server-shop/api/shoppingtrolley/remove")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CartUpdateBean> getCartRemove(@Header("token") String token, @Query("ids") String ids);


    /**
     * @description 保存购物车商品
     */

    @POST("/server-shop/api/shoppingtrolley/save")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CommonDataBean> getAddCartShop(@Header("token") String token, @Body RequestBody requestBody);


    /**
     * @description 收货地址的列表
     */

    @GET("/server-shop/api/useraddress/list")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<AddressListBean> getAddressList(@Header("token") String token);


    /**
     * @description 新增收货地址
     */

    @POST("/server-shop/api/useraddress/save")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<AddressSubmitBean> getAddressSubmit(@Header("token") String token, @Body RequestBody requestBody);

    /**
     * @description 修改收货地址
     */

    @POST("/server-shop/api/useraddress/update")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<AddressSubmitBean> getAddressUpdate(@Header("token") String token, @Body RequestBody requestBody);

    /**
     * @description 获取城市三级列表
     */

    @GET("/server-shop/wap/region/tree")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<AddressTreeBean> getAddressTree();

    /**
     * @description 删除地址
     */

    @POST("/server-shop/api/useraddress/remove")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CommonDataBean> getAddressDetele(@Header("token") String token, @Query("ids") String ids);


    //橙鹿优选 商超板块的接口

    /**
     * @description 删除地址
     */

    @GET("/server-restaurant/api/shopsInfo/searchShop")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<RestaurantSearchBean> getSearchShop(@QueryMap Map<String, String> map);


    /**
     * @description 打开红包
     */

    @GET("/server-system/api/redbag/page")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<PacketBean> getredPackList(@Header("token")String token,@QueryMap Map<String, String> map);

    /**
     * @description 打开红包
     */

    @GET("/server-system/api/redbag/page")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<PacketBean> getredPackList(@QueryMap Map<String, String> map);
    /**
     * @description 打开红包
     */

    @GET("/server-system/api/redbag/receive")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<OpenPacketBean> getOpenPacket(@Header("token") String token, @Query("id") String id);


    //***********************************start ******************************************//
    /**
     * @description 商超预生成订单接口
     */

    @POST("/server-shop/api/order/preBuild")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ComfirmOrderBean> getComfirmOrder(@Header("token") String token, @Body RequestBody body);

    /**
     * @description 餐饮预生成订单接口
     */

    @POST("/server-restaurant/api/order/preBuild")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ComfirmOrderBean> getRestaurantComfirmOrder(@Header("token") String token, @Body RequestBody body);

    /**
     * @description 美业预生成订单接口
     */

    @POST("/server-beauty-industry/api/beautyIndustry/order/preBuild")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ComfirmOrderBean> getBeautyComfirmOrder(@Header("token") String token, @Body RequestBody body);

    /**
     * @description 教育预生成订单接口
     */

    @POST("/server-education/api/order/preBuild")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ComfirmOrderBean> getEducationComfirmOrder(@Header("token") String token, @Body RequestBody body);


    /**
     * @description 便利店预生成订单接口
     */

    @POST("/server-minimart/api/order/preBuild")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ComfirmOrderBean> getMinimartComfirmOrder(@Header("token") String token, @Body RequestBody body);



    /**
     * @description 药店预生成订单接口
     */

    @POST("/server-pharmaceuticals/api/order/preBuild")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ComfirmOrderBean> getPharmaceuticalsComfirmOrder(@Header("token") String token, @Body RequestBody body);

    /**
     * @description 孕育预生成订单接口
     */

    @POST("/server-breed/api/order/preBuild")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ComfirmOrderBean> getBreedComfirmOrder(@Header("token") String token, @Body RequestBody body);

    //***********************************end ******************************************//



    //*********************************** start******************************************//

    /**
     * @description 商超生成订单接口
     */

    @POST("/server-shop/api/order/build")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ComfirmOrderBean> getGenerateOrder(@Header("token") String token, @Body RequestBody body);


    /**
     * @description 餐饮生成订单接口
     */

    @POST("/server-restaurant/api/order/build")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ComfirmOrderBean> getRestauranGenerateOrder(@Header("token") String token, @Body RequestBody body);

    /**
     * @description 美业生成订单接口
     */

    @POST("/server-beauty-industry/api/beautyIndustry/order/build")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ComfirmOrderBean> getBeautyGenerateOrder(@Header("token") String token, @Body RequestBody body);

    /**
     * @description 教育订单接口
     */

    @POST("/server-education/api/order/build")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ComfirmOrderBean> getEducationGenerateOrder(@Header("token") String token, @Body RequestBody body);


    /**
     * @description 便利店订单接口
     */

    @POST("/server-minimart/api/order/build")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ComfirmOrderBean> getMinimartGenerateOrder(@Header("token") String token, @Body RequestBody body);

    /**
     * @description  药业订单接口
     */

    @POST("/server-pharmaceuticals/api/order/build")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ComfirmOrderBean> getPharmaceuticalsGenerateOrder(@Header("token") String token, @Body RequestBody body);

    /**
     * @description 孕育订单接口
     */

    @POST("/server-breed/api/order/build")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ComfirmOrderBean> getBreedGenerateOrder(@Header("token") String token, @Body RequestBody body);



    //***********************************end ******************************************//


    //***********************************start 餐饮配送日期和送达时间******************************************//


    /**
     * @description 餐饮查询配送日期列表
     */

    @GET("/server-restaurant/api/order/getPostDayList")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<PostDayBean> getPostDayList();



    /**
     * @description 餐饮查询配送时间
     */
    @GET("/server-restaurant/api/order/getPostTimeList")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<PostTimeListBean> getPostTimeList(@Query("type") int type);



    //***********************************end ******************************************//

    //***********************************start******************************************//
    /**
     * @description 商超优惠卷列表接口
     */

    @POST("/server-shop/api/couponuser/couponList")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CouponListBean> getCouponList(@Header("token") String token, @Body RequestBody body);

    /**
     * @description 餐饮优惠卷列表接口
     */
    @POST("/server-restaurant/api/couponUser/shop/userCoupon/list")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CouponListBean> getRestaurantCouponList(@Header("token") String token, @Body RequestBody body);

    /**
     * @description 美业优惠卷列表接口
     */
    @POST("/server-beauty-industry/api/beautyIndustry/couponUser/userCoupon/list")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CouponListBean> getBeautyCouponList(@Header("token") String token, @Body RequestBody body);

    /**
     * @description 教育优惠卷列表接口
     */
    @POST("/server-education/api/couponUser/shop/userCoupon/list")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CouponListBean> getEducationCouponList(@Header("token") String token, @Body RequestBody body);

    /**
     * @description 便利店优惠卷列表接口
     */
    @POST("/server-minimart/api/couponUser/shop/userCoupon/list")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CouponListBean> getMinimartCouponList(@Header("token") String token, @Body RequestBody body);

    /**
     * @description 药店优惠卷列表接口
     */
    @POST("/server-pharmaceuticals/api/couponUser/shop/userCoupon/list")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CouponListBean> getPharmaceuticalsCouponList(@Header("token") String token, @Body RequestBody body);


    /**
     * @description 孕育优惠卷列表接口
     */
    @POST("/server-breed/api/couponUser/shop/userCoupon/list")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CouponListBean> getBreedCouponList(@Header("token") String token, @Body RequestBody body);

    //***********************************end ******************************************//

    /**
     * @description 用户的优惠卷列表接口
     */

    @GET("/server-shop/api/couponuser/page")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CouponBean> getCouponUserList(@Header("token") String token, @QueryMap Map<String, String> map);




    /**
     * @description 用户的优惠卷列表接口 shopsTypeId	店铺行业类型id 999-平台 1-商城 2-餐饮 3-美容 4-教育 5-装修 6-农业 7-酒店
     */

    @GET("/server-shop/api/coupon/page")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ShopCouponPage> getShopCouponPage(@Header("token") String token, @QueryMap Map<String, String> map);



    @POST("/server-shop/api/coupon/receive")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CommonDataBean> getShopCouponreceive(@Header("token") String token, @Query("id") String id);

    /**
     * @description 支付类型配置
     */

    @GET("/server-system/pay/getPayTypeConfig")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<PayTypeConfig> getPayTypeConfig(@Query("shopsTypeId") String shopsTypeId);

    /**
     * @description 查询店铺支付方式列表
     */

    @GET("/server-system/pay/findPayTypeListByTenantId")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<TenantIdPayMethod> getTenantIdPayMethod(@Header("token") String token, @Query("payClient") String payClient, @Query("tenantId") String tenantId);


    /**
     * @description 订单支付
     */

    @POST("/server-system/pay/order")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<PayOrderBean> getPayOrder(@Header("token") String token, @Body RequestBody body);


    /**
     * @description 我的所有订单
     */

    @GET("/server-shop/api/order/page")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<OrderInfoBean> getOrderList(@Header("token") String token, @QueryMap Map<String, String> map);

    /**
     * @description 我的所有订单
     */

    @POST("/server-shop/api/order/cancel")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CommonDataBean> getOrderCancel(@Header("token") String token, @Query("id") String id);

    /**
     * @description 我的删除所有订单
     */

    @POST("/server-shop/api/order/remove")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CommonDataBean> getOrderRemove(@Header("token") String token, @Query("ids") String id);

    /**
     * @description 物流地址
     */

    @GET("/server-shop/api/order/syn")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<LogisticsBean> getOrderLogistics(@Header("token") String token, @Query("orderNo") String orderNo);


    /**
     * @description 确认收货
     */

    @POST("/server-shop/api/order/receiving")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CommonDataBean> getOrderReceiving(@Header("token") String token, @Query("id") String id);


    /**
     * @description 订单商超详情
     */

    @GET("/server-shop/api/order/info")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<OrderDetailBean> getOrderInfo(@Header("token") String token, @Query("id") String id);


    /**
     * @description 订单餐饮详情
     */
    @GET("/server-restaurant/api/order/info")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<OrderDetailBean> getRestautantInfo(@Header("token") String token, @Query("id") String id);

    /**
     * @description 订单美业详情
     */
    @GET("/server-beauty-industry/api/beautyIndustry/order/info")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<OrderDetailBean> getBeautyInfo(@Header("token") String token, @Query("id") String id);


    /**
     * @description 订单药店详情
     */
    @GET("/server-pharmaceuticals/api/order/info")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<OrderDetailBean> getPharmaceuticalsInfo(@Header("token") String token, @Query("id") String id);

    /**
     * @description 订单教育详情
     */
    @GET("/server-education/api/order/info")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<OrderDetailBean> getEducationInfo(@Header("token") String token, @Query("id") String id);

    /**
     * @description 订单便利店详情
     */
    @GET("/server-minimart/api/order/info")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<OrderDetailBean> getMinimartInfo(@Header("token") String token, @Query("id") String id);


    /**
     * @description 订单孕育详情
     */
    @GET("/server-breed/api/order/info")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<OrderDetailBean> getBreedInfo(@Header("token") String token, @Query("id") String id);


    /**
     * @description 订单教育核销码
     */
    @GET("/server-education/api/order/getOrderQrcodeBase64")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<QrcodeBean> getEducationQrcode(@Header("token") String token, @Query("id") String id);

    /**
     * @description 订单美业核销码
     */
    @GET("/server-beauty-industry/api/beautyIndustry/order/getOrderQrcodeBase64")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<QrcodeBean> getBeautynQrcode(@Header("token") String token, @Query("id") String id);

    /**
     * @description 发布评论
     */
    @POST("/server-shop/api/review/save")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CommonDataBean> getOrderComment(@Header("token") String token, @Body RequestBody requestBody);


    /**
     * @description 橙鹿优选餐饮店铺信息
     */
    @GET("/server-restaurant/api/shopsInfo/getCurrentShopsInfo")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CurrentShopsInfoBean> getCurrentShopsInfo(@Query("tenantId") String tenantId);

    /**
     * @description 橙鹿优选餐饮店铺信息 分类
     */
    @GET("/server-restaurant/api/goodscategory/list")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<GoodscategorylisBean> getGoodscategoryList(@Query("tenantId") String tenantId);


     /**
     * @description 查询门店评论数量
     */
    @GET("/server-restaurant/api/review/reviewTypeCount")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ReviewTypeCountBean> getReviewTypeCount(@Query("tenantId") String tenantId);

    /**
     * @description 查询门店评论列表
     */
    @GET("/server-restaurant/api/review/page")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<ShopReviewPageBean> getShopReviewPage(@Query("tenantId") String tenantId,
                                                     @Query("current") int current,
                                                     @Query("size") int size,
                                                     @Query("isBad") int isBad,//1是差评
                                                     @Query("isPic") int isPic);//1是有图

    /**
     * @description 商铺购物车商品列表
     */

    @GET("/server-shop/api/shoppingtrolley/list")
    @Headers({"User-Type:wap", "Authorization:d2FwOlZPclVUOVVB"})
    Observable<CartBean> getShopsCartList(@Header("token") String token,@Query("tenantId")String tenantId);


}
